package manager;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import InterfazRemota.InterfazRemota;
import NegocioVO.ComandaVO;
import NegocioVO.MesaVO;
import NegocioVO.PlatoVO;

public class AdministradorPedido {

	private InterfazRemota ir;
	private static AdministradorPedido instancia;
	
	public static AdministradorPedido getInstancia()
	{
		if(instancia==null)
			instancia = new AdministradorPedido();
		return instancia;
	}
	
	private AdministradorPedido()
	{
		try {
			ir = (InterfazRemota) Naming.lookup("TPO_Restaurante");
			
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();
		}
	}
	
	
	public void AltaPedido(String[] comandascheck, String[] cantidades, int idMesa, int nroMozo,String localId)
	
	{	//ver como se reciben los datos del controlador
		
		List<ComandaVO> comandas = new ArrayList<ComandaVO>();
		int k = 0;
		k = Integer.valueOf(localId);
		
	//	int Cant = 0; 
		
		int j=0;
		int cant=0;
		for (int i = 0; comandascheck.length - 1 >= i; i++)
		{
			
				
				ComandaVO comanda = new ComandaVO();
				cant = Integer.valueOf(cantidades[j]);
				
				
				while (cant == 0){
					j++;
					cant = Integer.valueOf(cantidades[j]);
				}
					
									
				 PlatoVO plato = new PlatoVO();
				 plato.setIdPlato(Integer.valueOf(comandascheck[i]));
				 System.out.println("este es el id de platoooooooooooooooooooooooooooooooooooooooooooooo!!!!");
				 System.out.println(Integer.valueOf(comandascheck[i]));
				 comanda.setPlato(plato);
				 comanda.setCantidad(cant);
				 System.out.println (comanda.getPlato().getIdPlato()+ "nueva linea de id plato");
				 comanda.setEstado("Abierta");
				 comandas.add(comanda);
				 
				 cant = Integer.valueOf(cantidades[j]);
				 j++;
				}

		try {
			ir.AltaPedido(comandas, idMesa, nroMozo,k);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
